// 实例化一个vue应用
import { createApp } from 'vue'
// 引入根组件
import App from './App.vue'

// 引入封装的路由
import router from './routers/index'

// 引入vant ui框架
import Vant from 'vant';
import 'vant/lib/index.css';

// 引入接口(引进来的东西必须要挂载,挂载完要在页面引入)
import api from './api/index'

// 引入vue3-cookies 
import VueCookies from 'vue3-cookies'

// 加载根组件并绑定app容器(挂载，就是让app有路由、ui框架等这些功能)
const app =createApp(App)
.use(router) //挂载路由
.use(Vant)  //加载vant ui框架
.use(api)   //加载api
.use(VueCookies)//加载cookie
.mount('#app') //这个必须在最下面


// 判断登录
router.beforeEach(async (to,form,next)=>{

    var IsLogin=to.meta.IsLogin ? to.meta.IsLogin : false;

    // 如果IsLogin=true 说明要登录，否则
    if(IsLogin)
    {
        // 要登录
        var LoginUser =app.$cookies.get('LoginUser');

        // 没有登录就跳转到登录界面
        if(!LoginUser)
        {
            next('/user/base/login')
            return
        }

        // 获取id
        var userid=LoginUser.id ? LoginUser.id : 0;

        // 调用接口请求(后端请求接口)
        var result=await api.check({userid:userid})
        
        if(result.code == 0)
        {
            // 验证失败
            app.$cookies.remove('LoginUser');//删除掉cookies,

            // 跳转
            next('/user/base/login')
            return
        }else
        {
            // 验证成功
            // 覆盖原本cookie
            app.$cookies.set('LoginUser',result.data);

            // next() 去到对应的路由
            next()
        }

    }else
    {
        // 不需要登录，直接跳转
        next()
    }
})



